#pragma once
#include "DataStructure/Common/Id.h"
#include "DataStructure/Common/Real.h"
#include "DataStructure/Result/Nodal/NodalBase.h"

SG_DATASTRUCTURE_POST_NAMESPACE_OPEN

struct DISPLACEMENT_CPLXData : public NodalBase
{
    SG::DataStructure::Common::Real m_XR       = 0.0;  ///< X real component
    SG::DataStructure::Common::Real m_YR       = 0.0;  ///< Y real component
    SG::DataStructure::Common::Real m_ZR       = 0.0;  ///< Z real component
    SG::DataStructure::Common::Real m_RXR      = 0.0;  ///< RX real component
    SG::DataStructure::Common::Real m_RYR      = 0.0;  ///< RY real component
    SG::DataStructure::Common::Real m_RZR      = 0.0;  ///< RZ real component
    SG::DataStructure::Common::Real m_XI       = 0.0;  ///< X imaginary component
    SG::DataStructure::Common::Real m_YI       = 0.0;  ///< Y imaginary component
    SG::DataStructure::Common::Real m_ZI       = 0.0;  ///< Z imaginary component
    SG::DataStructure::Common::Real m_RXI      = 0.0;  ///< RX imaginary component
    SG::DataStructure::Common::Real m_RYI      = 0.0;  ///< RY imaginary component
    SG::DataStructure::Common::Real m_RZI      = 0.0;  ///< RZ imaginary component
    SG::DataStructure::Common::Id   m_domainId = 0;    ///< Domain identifier
};

///< @brief 判断数据是否相等
DECLSPEC bool operator== (const DISPLACEMENT_CPLXData& val1, const DISPLACEMENT_CPLXData& val2);

SG_DATASTRUCTURE_POST_NAMESPACE_CLOSE
